<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="@* | node()"><xsl:if test="not(local-name()='xmlns:xsi')"><xsl:copy><xsl:apply-templates select="@* | node()"/></xsl:copy></xsl:if></xsl:template><!-- Removes extra xmlns:xsi declarations. I don't understand how it works yet. --><xsl:template match="*"><xsl:element name="{local-name()}"><!-- process attributes --><xsl:apply-templates select="@*" /><xsl:apply-templates/></xsl:element></xsl:template><xsl:template match="*[not(node())]"><xsl:element name="{local-name()}"><xsl:apply-templates select="@*" /></xsl:element></xsl:template><xsl:template match="processing-instruction()"></xsl:template>	</xsl:stylesheet>